<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <script>
        //定义方法
        function fun() {
            //发送异步请求
            /** 1、创建核心对象 */
            var xmlhttp;
            if (window.XMLHttpRequest) {
                // code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp=new XMLHttpRequest();
            } else {
                // code for IE6, IE5
                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            /** 2、建立连接 */
            /*
                参数：
                    1、请求方式：GET、POST
                        * get方式：请求参数在URL后面，用 ? 拼接。send方法为空参。
                        * post方式：请求参数在 send 方法中定义。
                    2、请求的URL：
                    3、同步或异步请求：true（异步）或 false（同步）
             */
            xmlhttp.open("GET","ajaxServlet?username=tom",true);
            // open()方法里面的 ajaxServlet 就是 AjaxServlet的注释
            // open()方法里面如果是 false，则为同步请求。--->点击“发送异步请求”按钮，需等待5秒才能在文本框输入文字。
            // open()方法里面如果是 true，则为异步请求。--->点击“发送异步请求”按钮，无需等待5秒，就能输入文字。
            /** 3、发送请求 */
            xmlhttp.send();
            /** 4、接收并处理来自服务器的响应结果。*/
            //获取方式：xmlhttp.responseText
            //当服务器响应成功后再获取

            //当xmlhttp对象的就绪状态改变时，触发事件onreadystatechange。
            xmlhttp.onreadystatechange=function () {
                //判断readyState就绪状态是否为4，判断status响应状态码是否为200
                if (xmlhttp.readyState==4 && xmlhttp.status==200){
                    //获取服务器响应的结果
                    var responseText = xmlhttp.responseText;
                    alert(responseText);
                }
            }
        }
    </script>

</head>
<body>
    <input type="button" value="发送异步请求" onclick="fun();">

    <input>

</body>
</html>

